using System;
using System.Collections.Generic;
using ns26;
using ns27;
using Triton.Game.Mono;

namespace Triton.Game.Mapping
{
	[Attribute38("iTweenManager")]
	public class iTweenManager : MonoBehaviour
	{
		[Attribute38("iTweenManager.iTweenEntry")]
		public class iTweenEntry : MonoClass
		{
			public GameObject gameObject => method_3<GameObject>("gameObject");

			public iTween iTween => method_3<iTween>("iTween");

			public iTweenEntry(IntPtr address, string className)
				: base(address, className)
			{
			}

			public iTweenEntry(IntPtr address)
				: this(address, "iTweenEntry")
			{
			}
		}

		public static bool s_quitting => MonoClass.smethod_6<bool>(TritonHs.MainAssemblyPath, "", "iTweenManager", "s_quitting");

		public iTweenCollection m_tweenCollection => method_3<iTweenCollection>("m_tweenCollection");

		public iTweenManager(IntPtr address, string className)
			: base(address, className)
		{
		}

		public iTweenManager(IntPtr address)
			: this(address, "iTweenManager")
		{
		}

		public static iTweenManager Get()
		{
			return MonoClass.smethod_15<iTweenManager>(TritonHs.MainAssemblyPath, "", "iTweenManager", "Get", Array.Empty<object>());
		}

		public static void Add(iTween tween)
		{
			MonoClass.smethod_18(TritonHs.MainAssemblyPath, "", "iTweenManager", "Add", tween);
		}

		public static void Remove(iTween tween)
		{
			MonoClass.smethod_18(TritonHs.MainAssemblyPath, "", "iTweenManager", "Remove", tween);
		}

		public static List<iTween> GetTweensForObject(GameObject obj)
		{
			return MonoClass.smethod_15<Class251<iTween>>(TritonHs.MainAssemblyPath, "", "iTweenManager", "GetTweensForObject", new object[1] { obj })?.method_25();
		}

		public static iTweenIterator GetIterator()
		{
			return MonoClass.smethod_14<iTweenIterator>(TritonHs.MainAssemblyPath, "", "iTweenManager", "GetIterator", Array.Empty<object>());
		}

		public static int GetTweenCount()
		{
			return MonoClass.smethod_14<int>(TritonHs.MainAssemblyPath, "", "iTweenManager", "GetTweenCount", Array.Empty<object>());
		}

		public void AddImpl(iTween tween)
		{
			method_8("AddImpl", tween);
		}

		public void RemoveImpl(iTween tween)
		{
			method_8("RemoveImpl", tween);
		}

		public void OnApplicationQuit()
		{
			method_8("OnApplicationQuit");
		}

		public void OnDestroy()
		{
			method_8("OnDestroy");
		}

		public void Update()
		{
			method_8("Update");
		}

		public void LateUpdate()
		{
			method_8("LateUpdate");
		}

		public void FixedUpdate()
		{
			method_8("FixedUpdate");
		}

		public iTween GetTweenForObject(GameObject obj)
		{
			return method_14<iTween>("GetTweenForObject", new object[1] { obj });
		}

		public List<iTween> GetTweensForObjectImpl(GameObject obj)
		{
			return method_14<Class251<iTween>>("GetTweensForObjectImpl", new object[1] { obj })?.method_25();
		}

		public iTweenIterator GetIteratorImpl()
		{
			return method_11<iTweenIterator>("GetIteratorImpl", Array.Empty<object>());
		}

		public int GetTweenCountImpl()
		{
			return method_11<int>("GetTweenCountImpl", Array.Empty<object>());
		}
	}
}
